Option Explicit

'################################################################
' Discriptor
' 聚合函数列定义
' 只用来做类型标记
'################################################################

'################################################################
' Function
'################################################################
' 设置当前聚合列的数据源
Public Sub setDataSource(ByRef ds As IDFSeries)
End Sub

' 分段式计算: 筛选过程中的计算
'
' 传入 groupby key 所对应的行索引，然后由聚合列自己去获取上一次的计算结果
' 在聚合列完成当前这一行的计算后，和上一次的结果进行聚合
' @param groupIndex 当前分组所对应的行索引
Public Function compute(ByRef groupRowIndex As Long) As Variant
End Function

' 分段式计算: 是否需要执行筛选结束阶段的计算
Public Function hasEndStageCompute() As Boolean
End Function

' 分段式计算: 执行筛选结束阶段的计算
' 传入每个 groupby 的数量，在聚合列内部，完成剩余的计算
' 计算后的结果直接写回数据源对应的槽位上
Public Sub executeEndStageComputeByCount(ByRef groubyCountSeries As IDFSeries)
End Sub

' 分段式计算: 组合式聚合列计算最终结果时使用
' 设置当前聚合列的活动行索引
Public Sub unsafeSetActiveRowIndex(ByRef rindex As Long)
End Sub